//
//  AssTime.m
//  GrosoSub
//
//  Created by Josu López Fernández on 13/06/08.
//  Copyright 2008 Josu López Fernández. All rights reserved.
//
//	Redistribution and use in source and binary forms, with or without
//	modification, are permitted provided that the following conditions are met:
//
//		* Redistributions of source code must retain the above copyright notice,
//		  this list of conditions and the following disclaimer.
//		* Redistributions in binary form must reproduce the above copyright
//		  notice, this list of conditions and the following disclaimer in the
//		  documentation and/or other materials provided with the distribution.
//		* Neither the name of the library nor the names of its
//		  contributors may be used to endorse or promote products derived from
//		  this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
//  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
//  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
//  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
//  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
//  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
//  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
//  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
//  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//  POSSIBILITY OF SUCH DAMAGE.
//

#import "AssTime.h"


@implementation AssTime
	- (NSInteger) hours
	{
		return hours;
	}
	
	- (NSInteger) minutes
	{
		return minutes;
	}
	
	- (NSInteger) seconds
	{
		return seconds;
	}
	
	- (NSInteger) hundredths
	{
		return hundredths;
	}
	
	- (void) setHours:(NSInteger) ho
	{
		hours = ho;
	}

	- (void) setMinutes:(NSInteger) mi
	{
		minutes = mi;
	}
	
	- (void) setSeconds:(NSInteger) se
	{
		seconds = se;
	}
	
	- (void) setHundredths:(NSInteger) hu
	{
		hundredths = hu;
	}
	
	- (void) fillFromString:(NSString *) line
	{
		if ([line length] == 10) {
			NSInteger h, m, s, ht;
			NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@":."];
			NSArray *sections = [line componentsSeparatedByCharactersInSet:set];
			if ([sections count] == 4) {
				h = [[sections objectAtIndex:0] integerValue];
				m = [[sections objectAtIndex:1] integerValue];
				s = [[sections objectAtIndex:2] integerValue];
				ht = [[sections	objectAtIndex:3] integerValue];
				if (s >= 60) {
					m = m + (s / 60);
					s = s % 60;
				}
				if (m >= 60) {
					h = h + (m / 60);
					m = m % 60;
				}
				hours = h;
				minutes = m;
				seconds = s;
				hundredths = ht;
			}
		}
	}

	- (NSString *) toString
	{
		return [NSString stringWithFormat:@"%d:%02d:%02d.%02d", hours, minutes, seconds, hundredths];
	}
@end
